using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using BANSACH.BusinessLayer.DataLayer;
using BANSACH.BusinessLayer;
namespace BANSACH_GUI
{
    public partial class frmTblNXBDetail : FormBase
    {
        public EventHandler OnAddOrEditEntity;
        private bool _isNew;
        private TblNXBFactory objDao;
        private TblNXB _Entity;

        public TblNXB Entity
        {
            get { return _Entity; }
            set { _Entity = value; }
        }
        // Hàm tạo không có tham số: thêm mới
        public frmTblNXBDetail()
        {
            InitializeComponent();
            _isNew = true;
            btnSave.Text = "Lưu && thêm mới";
            _Entity = null;
        }
        // Hàm tạo có tham số: Sửa đối tượng
        public frmTblNXBDetail(TblNXB EntityEdit)
        {
            InitializeComponent();
            _isNew = false;
            btnSave.Text = "Lưu";
            _Entity = EntityEdit;           
        }
        private void frmTblNXBDetail_Load(object sender, EventArgs e)
        {
            objDao = new TblNXBFactory();
            // Hiển thị thông tin NXB khi sửa thông tin
            if (_Entity != null) 
                ViewEntity();
            else
                _Entity = new TblNXB();
        }
        private void ViewEntity()
        {
            txt_MaNXB.Text = _Entity.MaNXB;
            txt_TenNXB.Text = _Entity.TenNXB;
            txt_DiaChi.Text = _Entity.DiaChi;
            txt_Email.Text = _Entity.Email;
            txt_DienThoai.Text = _Entity.DienThoai;
        }
        private void btnSave_Click(object sender, EventArgs e)
        {   // Tạo đối tượng NXB với các thông tin do người dùng nhập
            SetEntityValue();
            if (_isNew)
            {
                if (objDao.Insert(_Entity))
                {   //Thực hiện phương thức ủy quyền, cập nhật xuống form danh sách
                    if (OnAddOrEditEntity != null) 
                        OnAddOrEditEntity(_Entity, e);
                    NewItem();
                }
            }
            else
            {
                if (objDao.Update(_Entity))
                {   //Thực hiện phương thức ủy quyền, cập nhật xuống form danh sách
                    if (OnAddOrEditEntity != null) 
                        OnAddOrEditEntity(_Entity, e);
                    this.Close();
                }
            }
        }
        private void NewItem()
        { 
            
				 txt_MaNXB.Text ="";
				 txt_TenNXB.Text ="";
				 txt_DiaChi.Text ="";
				 txt_Email.Text ="";
				 txt_DienThoai.Text ="";
        }        
        private void SetEntityValue()
        {
            
				 _Entity.MaNXB=txt_MaNXB.Text;
				 _Entity.TenNXB=txt_TenNXB.Text;
				 _Entity.DiaChi=txt_DiaChi.Text;
				 _Entity.Email=txt_Email.Text;
				 _Entity.DienThoai=txt_DienThoai.Text;
        }
        private void btnExit_Click(object sender, EventArgs e)
        {
            this.DialogResult = DialogResult.Cancel;
            this.Close();
        }       
    }
}
